package be.vdab.valueobjects;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import be.vdab.constraints.Postcode;

@Embeddable
public class Adres implements Serializable{
	private static final long serialVersionUID = 1L;
	@NotNull
	@Size(min = 1, max = 50, message = "{Size.tekst}")
	private String straat;
	@NotNull
	@Size(min = 1, max = 7, message = "{Size.tekst}")
	private String huisNr;
	@NotNull
	@Postcode
	private Integer postcode;
	@NotNull
	@Size(min = 1, max = 50, message = "{Size.tekst}")
	private String gemeente;
	
	public Adres(){
	}
	public Adres(String straat, String huisNr, Integer postcode, String gemeente){
		this.straat = straat;
		this.huisNr = huisNr;
		this.postcode = postcode;
		this.gemeente = gemeente;
	}
//Setters
	protected void setStraat(String straat){
		this.straat = straat;
	}
	protected void setHuisNr(String huisNr){
		this.huisNr = huisNr;
	}
	protected void setPostcode(Integer postcode){
		this.postcode = postcode;
	}
	protected void setGemeente(String gemeente){
		this.gemeente = gemeente;
	}
//Getters
	public String getStraat() {
		return straat;
	}
	public String getHuisNr() {
		return huisNr;
	}
	public Integer getPostcode() {
		return postcode;
	}
	public String getGemeente() {
		return gemeente;
	}
	@Override
	public String toString(){
		return straat + ' ' + huisNr + ' ' + postcode + ' ' + gemeente;
	}
}
